package com.cetcs.kmga.dataManager.dao.mybatis;

import com.cetcs.kmga.dataManager.entity.dataManager.FTPFlowStatPojo;
import com.cetcs.kmga.dataManager.entity.dataManager.FlowStatOrderPojo;
import com.cetcs.kmga.dataManager.entity.dataManager.FlowStatPojo;
import com.cetcs.kmga.dataManager.entity.dataManager.FlowWarnPojo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * FTP流量的dao层
 *
 * @author xutao
 * @version V1.0 创建时间：2017-11-09 11:08
 *          Copyright 2017 by CETC
 */
@Repository
public interface FTPFlowStatisticMapper {

    /**
     * FTP小时资源流量数组统计
     *
     * @param ftpId   ftp采集编号
     * @param timeDay 天 ：格式：yyyy-MM-dd
     * @return
     */
    List<FTPFlowStatPojo> findHourResrcFlowListByFtpId(@Param("ftpId") String ftpId, @Param("timeDay") String timeDay);

    /**
     * FTP小时采集点流量数组统计
     *
     * @param ftpId   ftp采集编号
     * @param timeDay 天 ：格式：yyyy-MM-dd
     * @return
     */
    List<FTPFlowStatPojo> findHourCollectFlowListByFtpId(@Param("ftpId") String ftpId, @Param("timeDay") String timeDay);


    /**
     * FTP天采集点流量数组统计
     *
     * @param ftpId    采集数据源ID
     * @param startDay 起始日期
     * @param endDay   结束日期
     * @return
     */
    List<FTPFlowStatPojo> findDayCollectFlowListByFtpId(@Param("ftpId") String ftpId, @Param("startDay") String startDay, @Param("endDay") String endDay);


    /**
     * FTP天资源流量数组统计
     *
     * @param ftpId    采集数据源ID
     * @param startDay 起始日期
     * @param endDay   结束日期
     * @return
     */
    List<FTPFlowStatPojo> findDayResrcFlowListByFtpId(@Param("ftpId") String ftpId, @Param("startDay") String startDay, @Param("endDay") String endDay);

    /**
     * FTP天资源流量总量统计
     *
     * @param ftpId   采集数据源ID
     * @param timeDay 统计日期
     * @return
     */
    List<FTPFlowStatPojo> findDayTotalResrcFlowListByFtpId(@Param("ftpId") String ftpId, @Param("timeDay") String timeDay);

    /**
     * FTP天采集端流量总量统计
     *
     * @param ftpId   采集数据源ID
     * @param timeDay 统计日期
     * @return
     */
    List<FTPFlowStatPojo> findDayTotalCollectFlowListByFtpId(@Param("ftpId") String ftpId, @Param("timeDay") String timeDay);


    /**
     * 数据库资源与客户端之间的实时流向基础数据
     *
     * @return
     */
    List<FlowStatPojo> findRafficDirecResrcList();


    /**
     * 应用系统与客户端之间的实时流向基础数据
     *
     * @return
     */
    List<FlowStatPojo> findRafficDirecAppList();

    /**
     * 查询排序的类型
     *
     * @return
     */
    List<FlowStatOrderPojo> findFlowStatOrderList();

    /**
     * 统计资源流向的告警信息
     *
     * @return
     */
    List<FlowWarnPojo> findResFlowWarnInfo();

    /**
     * 统计app的流向信息
     *
     * @return
     */
    List<FlowWarnPojo> findAppFlowWarnInfo();


}
